home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Source Code / C / Applications / MacGzip 1.0 / source / GNU / tailor.h < prev    next >
Text File  |  1995-09-05  |  9KB  |  389 lines

  1. /* tailor.h -- target dependent definitions
  2.  * Copyright (C) 1992-1993 Jean-loup Gailly.
  3.  * This is free software; you can redistribute it and/or modify it under the
  4.  * terms of the GNU General Public License, see the file COPYING.
  5.  */
  6.  
  7. /* The target dependent definitions should be defined here only.
  8.  * The target dependent functions should be defined in tailor.c.
  9.  */
  10.  
  11. /*
  12.  * Changed: August 19, 1995. spd for MacGzip 1.0
  13.  */
  14.  
  15. /* $Id: tailor.h,v 0.18 1993/06/14 19:32:20 jloup Exp $ */
  16.  
  17. #if defined(THINK_C) || defined(__MWERKS__) || defined (MPW) || defined (applec) || defined (__powerc)
  18. #  define MACOS
  19. #  define MACGZIP
  20. #endif
  21.  
  22.  
  23. #if defined(__MSDOS__) && !defined(MSDOS)
  24. #  define MSDOS
  25. #endif
  26.  
  27. #if defined(__OS2__) && !defined(OS2)
  28. #  define OS2
  29. #endif
  30.  
  31. #if defined(OS2) && defined(MSDOS) /* MS C under OS/2 */
  32. #  undef MSDOS
  33. #endif
  34.  
  35. #ifdef MSDOS
  36. #  ifdef __GNUC__
  37.      /* DJGPP version 1.09+ on MS-DOS.
  38.       * The DJGPP 1.09 stat() function must be upgraded before gzip will
  39.       * fully work.
  40.       * No need for DIRENT, since <unistd.h> defines POSIX_SOURCE which
  41.       * implies DIRENT.
  42.       */
  43. #    define near
  44. #  else
  45. #    define MAXSEG_64K
  46. #    ifdef __TURBOC__
  47. #      define NO_OFF_T
  48. #      ifdef __BORLANDC__
  49. #        define DIRENT
  50. #      else
  51. #        define NO_UTIME
  52. #      endif
  53. #    else /* MSC */
  54. #      define HAVE_SYS_UTIME_H
  55. #      define NO_UTIME_H
  56. #    endif
  57. #  endif
  58. #  define PATH_SEP2 '\\'
  59. #  define PATH_SEP3 ':'
  60. #  define MAX_PATH_LEN  128
  61. #  define NO_MULTIPLE_DOTS
  62. #  define MAX_EXT_CHARS 3
  63. #  define Z_SUFFIX "z"
  64. #  define NO_CHOWN
  65. #  define PROTO
  66. #  define STDC_HEADERS
  67. #  define NO_SIZE_CHECK
  68. #  define casemap(c) tolow(c) /* Force file names to lower case */
  69. #  include <io.h>
  70. #  define OS_CODE  0x00
  71. #  define SET_BINARY_MODE(fd) setmode(fd, O_BINARY)
  72. #  if !defined(NO_ASM) && !defined(ASMV)
  73. #    define ASMV
  74. #  endif
  75. #else
  76. #  define near
  77. #endif
  78.  
  79. #ifdef OS2
  80. #  define PATH_SEP2 '\\'
  81. #  define PATH_SEP3 ':'
  82. #  define MAX_PATH_LEN  260
  83. #  ifdef OS2FAT
  84. #    define NO_MULTIPLE_DOTS
  85. #    define MAX_EXT_CHARS 3
  86. #    define Z_SUFFIX "z"
  87. #    define casemap(c) tolow(c)
  88. #  endif
  89. #  define NO_CHOWN
  90. #  define PROTO
  91. #  define STDC_HEADERS
  92. #  include <io.h>
  93. #  define OS_CODE  0x06
  94. #  define SET_BINARY_MODE(fd) setmode(fd, O_BINARY)
  95. #  ifdef _MSC_VER
  96. #    define HAVE_SYS_UTIME_H
  97. #    define NO_UTIME_H
  98. #    define MAXSEG_64K
  99. #    undef near
  100. #    define near _near
  101. #  endif
  102. #  ifdef __EMX__
  103. #    define HAVE_SYS_UTIME_H
  104. #    define NO_UTIME_H
  105. #    define DIRENT
  106. #    define EXPAND(argc,argv) \
  107.        {_response(&argc, &argv); _wildcard(&argc, &argv);}
  108. #  endif
  109. #  ifdef __BORLANDC__
  110. #    define DIRENT
  111. #  endif
  112. #  ifdef __ZTC__
  113. #    define NO_DIR
  114. #    define NO_UTIME_H
  115. #    include <dos.h>
  116. #    define EXPAND(argc,argv) \
  117.        {response_expand(&argc, &argv);}
  118. #  endif
  119. #endif
  120.  
  121. #ifdef WIN32 /* Windows NT */
  122. #  define HAVE_SYS_UTIME_H
  123. #  define NO_UTIME_H
  124. #  define PATH_SEP2 '\\'
  125. #  define PATH_SEP3 ':'
  126. #  define MAX_PATH_LEN  260
  127. #  define NO_CHOWN
  128. #  define PROTO
  129. #  define STDC_HEADERS
  130. #  define SET_BINARY_MODE(fd) setmode(fd, O_BINARY)
  131. #  include <io.h>
  132. #  include <malloc.h>
  133. #  ifdef NTFAT
  134. #    define NO_MULTIPLE_DOTS
  135. #    define MAX_EXT_CHARS 3
  136. #    define Z_SUFFIX "z"
  137. #    define casemap(c) tolow(c) /* Force file names to lower case */
  138. #  endif
  139. #  define OS_CODE  0x0b
  140. #endif
  141.  
  142. #ifdef MSDOS
  143. #  ifdef __TURBOC__
  144. #    include <alloc.h>
  145. #    define DYN_ALLOC
  146.      /* Turbo C 2.0 does not accept static allocations of large arrays */
  147.      void * fcalloc (unsigned items, unsigned size);
  148.      void fcfree (void *ptr);
  149. #  else /* MSC */
  150. #    include <malloc.h>
  151. #    define fcalloc(nitems,itemsize) halloc((long)(nitems),(itemsize))
  152. #    define fcfree(ptr) hfree(ptr)
  153. #  endif
  154. #else
  155. #  ifdef MAXSEG_64K
  156. #    define fcalloc(items,size) calloc((items),(size))
  157. #  else
  158. #    define fcalloc(items,size) malloc((size_t)(items)*(size_t)(size))
  159. #  endif
  160. #  define fcfree(ptr) free(ptr)
  161. #endif
  162.  
  163. #if defined(VAXC) || defined(VMS)
  164. #  define PATH_SEP ']'
  165. #  define PATH_SEP2 ':'
  166. #  define SUFFIX_SEP ';'
  167. #  define NO_MULTIPLE_DOTS
  168. #  define Z_SUFFIX "-gz"
  169. #  define RECORD_IO 1
  170. #  define casemap(c) tolow(c)
  171. #  define OS_CODE  0x02
  172. #  define OPTIONS_VAR "GZIP_OPT"
  173. #  define STDC_HEADERS
  174. #  define NO_UTIME
  175. #  define EXPAND(argc,argv) vms_expand_args(&argc,&argv);
  176. #  include <file.h>
  177. #  define unlink delete
  178. #  ifdef VAXC
  179. #    define NO_FCNTL_H
  180. #    include <unixio.h>
  181. #  endif
  182. #endif
  183.  
  184. #ifdef AMIGA
  185. #  define PATH_SEP2 ':'
  186. #  define STDC_HEADERS
  187. #  define OS_CODE  0x01
  188. #  define ASMV
  189. #  ifdef __GNUC__
  190. #    define DIRENT
  191. #    define HAVE_UNISTD_H
  192. #  else /* SASC */
  193. #    define NO_STDIN_FSTAT
  194. #    define SYSDIR
  195. #    define NO_SYMLINK
  196. #    define NO_CHOWN
  197. #    define NO_FCNTL_H
  198. #    include <fcntl.h> /* for read() and write() */
  199. #    define direct dirent
  200.      extern void _expand_args(int *argc, char ***argv);
  201. #    define EXPAND(argc,argv) _expand_args(&argc,&argv);
  202. #    undef  O_BINARY /* disable useless --ascii option */
  203. #  endif
  204. #endif
  205.  
  206. #if defined(ATARI) || defined(atarist)
  207. #  ifndef STDC_HEADERS
  208. #    define STDC_HEADERS
  209. #    define HAVE_UNISTD_H
  210. #    define DIRENT
  211. #  endif
  212. #  define ASMV
  213. #  define OS_CODE  0x05
  214. #  ifdef TOSFS
  215. #    define PATH_SEP2 '\\'
  216. #    define PATH_SEP3 ':'
  217. #    define MAX_PATH_LEN  128
  218. #    define NO_MULTIPLE_DOTS
  219. #    define MAX_EXT_CHARS 3
  220. #    define Z_SUFFIX "z"
  221. #    define NO_CHOWN
  222. #    define casemap(c) tolow(c) /* Force file names to lower case */
  223. #    define NO_SYMLINK
  224. #  endif
  225. #endif
  226.  
  227. #ifdef MACOS    /* spd */
  228. #  ifdef THINK_C
  229. #    pragma mark        MacOS options
  230. #  endif
  231. #  ifdef THINK_C
  232. #    ifndef __STDC__
  233. #      define __STDC__
  234. #    endif
  235. #  endif
  236. #  if defined (__POWERC__) || defined (powerc) || defined (__powerc)
  237. #    define __MAC_PPC__
  238. #  else
  239. #    define __MAC_68K__
  240. #  endif
  241. #  define NO_DIRENT
  242. #  define UTIME
  243. #  define STDC_HEADERS
  244. #  ifdef MACGZIP
  245. #    include "GzErrors.h"
  246. #    ifdef HAVE_UNISTD_H
  247. #      undef HAVE_UNISTD_H
  248. #    endif
  249. #    define NO_FCNTL_H
  250. #    define read    fs_read
  251. #    define write   fs_write
  252. #    define close    fs_close
  253. #    define isatty(fd) 0
  254. #  endif
  255. #  define DYN_ALLOC    
  256. #  define NO_SYMLINK
  257. #  define MAXSEG_64K
  258. #  define SMALL_MEM /* unlzw.c is the only file which requires this */
  259. #  define PATH_SEP ':'
  260. #  define PROTO
  261. #  define NO_STDIN_FSTAT
  262. #  define NO_CHOWN
  263. #  define chmod(file, mode) (0)
  264. #  ifndef OPEN
  265. #    define OPEN(name, flags, mode) open(name, flags)
  266. #  endif
  267. #  define OS_CODE  0x07
  268. #  if defined (MPW) && ! (defined (MACGZIP))
  269. #    define isatty(fd) ((fd) <= 2)
  270. #  endif
  271. #  define MAC_TIMEOFFSET    2082844800L
  272. #  define MAKE_LEGAL_NAME(name)    make_simple_name(name)    /* in util.c */
  273. #endif
  274.  
  275. #if 0 /* original tailor.h */
  276. #ifdef MACOS
  277. #  define PATH_SEP ':'
  278. #  define DYN_ALLOC
  279. #  define PROTO
  280. #  define NO_STDIN_FSTAT
  281. #  define NO_CHOWN
  282. #  define NO_UTIME
  283. #  define chmod(file, mode) (0)
  284. #  define OPEN(name, flags, mode) open(name, flags)
  285. #  define OS_CODE  0x07
  286. #  ifdef MPW
  287. #    define isatty(fd) ((fd) <= 2)
  288. #  endif
  289. #endif
  290. #endif
  291.  
  292. #ifdef __50SERIES /* Prime/PRIMOS */
  293. #  define PATH_SEP '>'
  294. #  define STDC_HEADERS
  295. #  define NO_MEMORY_H
  296. #  define NO_UTIME_H
  297. #  define NO_UTIME
  298. #  define NO_CHOWN 
  299. #  define NO_STDIN_FSTAT 
  300. #  define NO_SIZE_CHECK 
  301. #  define NO_SYMLINK
  302. #  define RECORD_IO  1
  303. #  define casemap(c)  tolow(c) /* Force file names to lower case */
  304. #  define put_char(c) put_byte((c) & 0x7F)
  305. #  define get_char(c) ascii2pascii(get_byte())
  306. #  define OS_CODE  0x0F    /* temporary, subject to change */
  307. #  ifdef SIGTERM
  308. #    undef SIGTERM         /* We don't want a signal handler for SIGTERM */
  309. #  endif
  310. #endif
  311.  
  312. #if defined(pyr) && !defined(NOMEMCPY) /* Pyramid */
  313. #  define NOMEMCPY /* problem with overlapping copies */
  314. #endif
  315.  
  316. #ifdef TOPS20
  317. #  define OS_CODE  0x0a
  318. #endif
  319.  
  320. #ifndef unix
  321. #  define NO_ST_INO /* don't rely on inode numbers */
  322. #endif
  323.  
  324.  
  325.     /* Common defaults */
  326.  
  327. #ifndef OS_CODE
  328. #  define OS_CODE  0x03  /* assume Unix */
  329. #endif
  330.  
  331. #ifndef PATH_SEP
  332. #  define PATH_SEP '/'
  333. #endif
  334.  
  335. #ifndef casemap
  336. #  define casemap(c) (c)
  337. #endif
  338.  
  339. #ifndef OPTIONS_VAR
  340. #  define OPTIONS_VAR "GZIP"
  341. #endif
  342.  
  343. #ifndef Z_SUFFIX
  344. #  define Z_SUFFIX ".gz"
  345. #endif
  346.  
  347. #ifdef MAX_EXT_CHARS
  348. #  define MAX_SUFFIX  MAX_EXT_CHARS
  349. #else
  350. #  define MAX_SUFFIX  30
  351. #endif
  352.  
  353. #ifndef MAKE_LEGAL_NAME
  354. #  ifdef NO_MULTIPLE_DOTS
  355. #    define MAKE_LEGAL_NAME(name)   make_simple_name(name)
  356. #  else
  357. #    define MAKE_LEGAL_NAME(name)
  358. #  endif
  359. #endif
  360.  
  361. #ifndef MIN_PART
  362. #  define MIN_PART 3
  363.    /* keep at least MIN_PART chars between dots in a file name. */
  364. #endif
  365.  
  366. #ifndef EXPAND
  367. #  define EXPAND(argc,argv)
  368. #endif
  369.  
  370. #ifndef RECORD_IO
  371. #  define RECORD_IO 0
  372. #endif
  373.  
  374. #ifndef SET_BINARY_MODE
  375. #  define SET_BINARY_MODE(fd)
  376. #endif
  377.  
  378. #ifndef OPEN
  379. #  define OPEN(name, flags, mode) open(name, flags, mode)
  380. #endif
  381.  
  382. #ifndef get_char
  383. #  define get_char() get_byte()
  384. #endif
  385.  
  386. #ifndef put_char
  387. #  define put_char(c) put_byte(c)
  388. #endif
  389.